#ifndef ABSTRACTBUTTON_H_INCLUDED
#define ABSTRACTBUTTON_H_INCLUDED

class AbstractButton{

public :
    AbstractButton(int hauteur=0, int largeur=0, float x=0, float y=0);
    void isImage(bool status);
    void isText(bool status);
    void setText(std::string text, int fontSize=14, sf::Color color=sf::Color::Black);
    void setImage(std::string imageName);
    void drawButton(sf::RenderWindow &app);
    void setBackgroundColor(sf::Color color);
    void setBorderColor(sf::Color color);
    void setSize(int h, int l);
    void setPosition(float x, float y);
    void setEvent(sf::Event &event);
    virtual void onClick() = 0;

protected :
    sf::Image image;
    sf::String buttonText;
    int hauteur;
    int largeur;
    float positionX;
    float positionY;
    bool statusImage;
    bool statusText;
    bool clicked;
    sf::Color backgroundColor;
    sf::Color borderColor;

};

#endif // BUTTON_H_INCLUDED
